#导入milvusClient和DataType模块，用于连接MIilvus服务器并操作数据类型
from  pymilvus import MilvusClient,DataType


#连接Milvus服务器
client = MilvusClient(
    uri="http://49.234.21.142:19530"
)

#创建schema,设置自动生成ID和动态字段特性
# schema = client.create_schema(
#     auto_id = False,
#     enable_dynamic_field = True,
# )
#
# #添加字段
# schema.add_field(field_name="id",datatype=DataType.INT64,is_primary=True)
# schema.add_field(field_name="vector",datatype=DataType.FLOAT_VECTOR,dim=128)
# schema.verify() #验证schema
#
#
# #创建索引
# index_params = MilvusClient.prepare_index_params()
#
# #添加索引
# index_params.add_index(
#     field_name="vector",
#     index_type="IVF_FLAT",
#     metric_type="L2", #距离计算方式(L2(欧式距离)/IP（内积）/COSINE（余弦相似度）)
#     index_name="vector_index",
#     params={
#         "nlist": 1024 #聚类中心数(建议值:sqrt(数据量))
#     }
# )
#
# #创建集合
# client.create_collection(
#     collection_name="my_collection",
#     schema=schema,
#     index_params=index_params,
# )

#插入数据
# data = [
#     {"id":1,"vector":[0.1]*128,"text":"Sample text1"},
#     {"id":2,"vector":[0.1]*128,"text":"Sample text2"}
# ]
# print(data)
# result = client.insert("my_collection",data)
# print(result)

#删除数据
client.delete(
    collection_name="my_collection",
    # filter="id==1",#第一种删除方式
    # ids = [1,2,3],#第二种删除方式
)
#更新就是先删除再插入,或者使用upsert方法